﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.Common;

namespace projetoFinal.pages.relatorios
{
    public partial class relChamadoStatus : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Response.Clear();
                Response.Buffer = true;
                Response.CacheControl = "";

                //Response.ContentType  = "text/html";
                //Response.AddHeader("content-disposition", "attachment;filename=relatorio.html");

                string strSQL = " SELECT chamado.numChamado, prestador.nome AS prestador, associado.nome AS associado, chamado.status, chamado.dataCad, seguradora.nome AS seguradora " +
                                " FROM chamado LEFT JOIN associado ON chamado.codAssociado = associado.codAssociado " +
                                "              LEFT JOIN cadastro AS seguradora ON chamado.codCadastro = seguradora.codCadastro " +
                                "              LEFT JOIN cadastro AS prestador ON chamado.codPrestadorServico = prestador.codCadastro " +
                                " GROUP BY seguradora.nome, chamado.status, chamado.dataCad, chamado.numChamado, prestador.nome, associado.nome " +
                                " ORDER BY chamado.dataCad, chamado.status";
                tableDados.DataSource = DAOHelper.executeQuery(strSQL);
                tableDados.DataBind();
            }
        }

        protected void tableDados_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
            {
                DbDataRecord dr = (DbDataRecord) e.Item.DataItem;

                Literal lblSeguradora = (Literal)e.Item.FindControl("lblSeguradora");
                Literal lblNumChamado = (Literal)e.Item.FindControl("lblNumChamado");
                Literal lblPrestador = (Literal)e.Item.FindControl("lblPrestador");
                Literal lblAssociado = (Literal)e.Item.FindControl("lblAssociado");
                Literal lblStatus = (Literal)e.Item.FindControl("lblStatus");
                Literal lblDataCad = (Literal)e.Item.FindControl("lblDataCad");

                if ((lblSeguradora != null) && (lblNumChamado != null) && (lblPrestador != null) && (lblAssociado != null) && (lblStatus != null) && (lblDataCad != null))
                {
                    lblSeguradora.Text = dr["seguradora"].ToString();
                    lblNumChamado.Text = dr["numChamado"].ToString();
                    lblPrestador.Text = dr["prestador"].ToString();
                    lblAssociado.Text = dr["associado"].ToString();
                    statusChamado s = (statusChamado)int.Parse(dr["status"].ToString());
                    switch (s)
                    {
                        case statusChamado.atendido:
                            lblStatus.Text = "Finalizado";
                            break;
                        case statusChamado.cancelado:
                            lblStatus.Text = "Cancelado";
                            break;
                        case statusChamado.emAberto:
                            lblStatus.Text = "Em aberto";
                            break;
                        case statusChamado.emAndamento:
                            lblStatus.Text = "Em andamento";
                            break;
                    }
                    lblDataCad.Text = string.Format("{0:dd/MM/yyyy}", dr["dataCad"]);
                }
            }
            if (e.Item.ItemType == ListItemType.Header)
            {
                Literal lblTitulo = (Literal)e.Item.FindControl("lblTitulo");
                if (lblTitulo != null)
                {
                    lblTitulo.Text = "<h1>Relatório Chamado x Status</h1>";
                }
            }
        }
    }
}